home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Whiteline: delta
/
whiteline CD Series - delta.iso
/
tools
/
dfue
/
cat_utis
/
chipmunk
/
chipmunk.txt
< prev
next >
Wrap
Text File
|
1995-11-25
|
19KB
|
423 lines
15.05.1994
Henry Rolofs
MausNet: Henry Rolofs @ KR
C h i p m u n k
Was ist Chipmunk und wo zu ist es gut?
Mit Chipmunk lassen sich ASCII-Texte als Mail direkt in die Datenbank von
CAT schreiben. Die Idee dazu entstand aus der Überlegung heraus, Diff's
über die Infodateien der Maus direkt in CAT als Mail anzeigen zu lassen.
Dazu wird Chipmunk in einer INF-Datei der Name der Textdatei sowie ein
paar Zusatzinformationen (Betreff, Absender usw.) übergeben. Die Textdatei
kann von einem beliebigen TOS-Programm erstellt werden welches auch von
Chipmunk aufgerufen werden kann. Möglich wäre z.B. ein Terminkalender, der
die Termine als Mail in die Datenbank von CAT schreibt.
Als Beispiel liegt ein kleines Diffprogramm, speziell für die ITG-Infodatei
der Maus, bei. Dazu später mehr.
Warum der Name Chipmunk?
(gestreiftes nordamerikanischen Eichhörnchen)
Irgendeinen Namen muß das Programm ja haben, warum nicht den? Zumal mir
diese kleinen Tierchen bei meinem letzten, und bislang einzigen, Besuch in
den USA sehr gefallen haben. Außerdem passt der Name gut in den DFÜ-Zoo
(Maus, CAT).
Worauf läuft Chipmunk?
Nunja, auf jedem Rechner, auf dem auch Cat läuft. Ein TOS-Rechner mit einer
beliebigen Menge RAM > 1MB mit einer beliebigen Grafik-Auflösung (naja, Cat
braucht mindestens 640*200). Einige Rückmeldungen von Medusa-Usern (am
besten mit Sachspende, lechts) wären sehr angenehm.
Nun ein paar Warnungen.
+-------------------------------------------------------------------------+
| Chipmunk schreibt die Mails direkt in die Datenbank von CAT. Wem das zu |
| unsicher oder gefährlich erscheint, der soll die Finger davon lassen |
| und kann die Bits und Bytes, die das Programm auf der Platte belegt |
| direkt wieder recyceln und anderweitig verwenden. |
+-------------------------------------------------------------------------+
Da die Mails direkt in die Database von CAT geschrieben werden ist es
wichtig, die 'passende' CAT-Version zu benutzen. Bislang getestet ist
Chipmunk mit CAT 2.52 und 2.6. Chipmunk testet selber, soweit möglich, die
Datenbankversion von CAT. Trotzdem sollte niemand Chipmunk auf eine
ungetestete CAT-Version loslassen ohne vorher eine Kopie von der Datenbank
zu machen.
Soweit möglich, versucht Chipmunk Fehleingaben abzufangen. Trotzdem wird
dies sicher nicht in allen Fällen gelingen. Für falsche Bedienung,
unsinnige INF-Dateien usw. ist der Benutzer, also Du selber verantwortlich.
Im Prinzip lassen sich mit Chipmunk beliebige Dateien in die Database
schreiben. Auch hier gilt das Prinzip der Selbstverantwortung, daß nur
ASCII-Texte eingebunden werden, da CAT mit anderen Dateien eventuell
Probleme hat. Alles andere als ASCII-Dateien als Mailtext wäre auch
unsinnig.
Ein Hallo an alle Wagemutigen die bis hierhin mitgelesen haben und sich
trotz aller Warnungen entschlossen haben, Chipmunk zu benutzen oder es
wenigstens etwas genauer in Augenschein zu nehmen.
Chipmunk kann frei kopiert und weitergegeben werden, solange dies nicht
kommerziell geschieht. Weiterhin ist die Weitergabe nur als Ganzes, das
heißt das komplette Archiv (ohne Dateien daraus zu entfernen oder
beizufügen oder zu verändern) erlaubt.
Chipmunk, und alle Programme in diesem Archiv, sind Freeware, kosten also
nichts. Für die, die es trotzdem nicht lassen können und dem Autor
unbedingt in Form einer Spende ihre Anerkennung ausdrücken wollen ist hier
meine Kontonummer.
Henry Rolofs
Stadtsparkasse Duisburg
Bankleitzahl: 350050000
Kontonummer: 312006893
(Bitte Zweck und Namen mit angeben)
Zum Archiv gehören folgende Dateien.
CHIPMUNK
CHIPMUNK.INF
CHIPMUNK.TXT
CHIPMUNK.TTP
CHIPMUNK.UPL
ITG_DIFF.TTP
LOESCHE.INF
LOESCHE.TTP
OUTFILE.TXT
Bevor es mit der eigentlichen Beschreibung los geht möchte ich an dieser
Stelle ein großes Dankeschön an Dirk Steins für die freundliche und
hilfreiche Unterstützung aussprechen.
Es kann also losgehen.
Damit Chipmunk weiß, was es überhaupt machen soll, wird ihm der
Databasepfad und der Pfad/Name einer INF-Datei übergeben.
Eine INF-Datei für Chipmunk hat z.B. folgenden Aufbau.
BITG_DIFF.TTP: Gruppenänderungen ; Betreff
AITG_DIFF.TTP ; Absender
;EHenry Rolofs @ KR ; Empfänger
GChipmunk ; Gruppe
;FD ; CAT-Status
DITG_DIFF.TXT ; Textdatei
KE:\CAT\MAUS_KR\DATABASE ; Kommandozeile
PITG_DIFF.TTP ; Programm
- ; Trennzeichen
KLOESCHE.INF ; Dateien aus LOESCHE.INF
PLOESCHE.TTP ; werden gelöscht
Es wird vom Anfang der INF-Datei her Block für Block abgearbeiteit. Ein
Block wird von zwei Zeilen die mit einem '-' beginnen bzw. Dateianfang
oder Dateiende eingerahmt. Jede Zeile in einem Block fängt mit einem
Schlüsselbuchstaben an, der die Bedeutung der Zeile angibt. Die
Reihenfolge der Zeilen in einem Block ist egal. Kommt eine Zeile mit dem
gleichen Schlüsselbuchstaben mehrfach vor, wird die letzte der
entsprechenden Zeilen beachtet.
Zu den Schlüsselbuchstaben.
B Betreff unter dem die Mail einsortiert wird
A Absender der Mail
E Empfänger, nur wichtig für die Gruppe PRIVATE
G Name der Gruppe in der die Mail geschrieben wird.
(Die Gruppe muß bereits existieren)
F Hier können Flags für die Mail angegeben werden, die gleichen
wie sie auch CAT intern verwendet.
L, Gelesen
F, Gefilterd
I, Interessant
T, Teillöschung
D, Totallöschung
K, Kommentieren
B, Beantworten
1, Userflag 1
2, Userflag 2
V, Vererben
D Name der Textdatei die als Mail eingebunden werden soll.
p Ein Programm welches vor dem Einbinden der Text-Datei
aufgerufen wird.
K Kommandozeile für dieses Programm. Diese wird dem Programm
nach dem ARGV-Verfahren übergeben, welches mittlerweile jedes
Programm beherschen sollte.
Zur Arbeitsweise von Chipmunk. Jede Zeile der INF-Datei wird bis zum Ende
oder ersten Auftreffen eines ';' eingelesen. Dann wird die Zeile von
hinten bis zum ersten Zeichen mit einem ASCII-Wert > $20 (Leerzeichen)
gekürzt. Da soll dazu dienen, daß nicht TABs oder ähnliches im Betreff,
Absender usw. auftreten können. Da die Zeilen nur bis zu einem möglichen
';' eingelesen werden, kann dieses Zeichen natürlich nicht im Betreff oder
den anderen Angaben vorkommen. Mit dieser kleinen Einschränkung sollte es
sich aber leben lassen.
Wenn in einem Block eine P-Zeile vorhanden ist wird zuerst dieses
Programm, und wenn vorhanden (K-Zeile) mit Parametern, gestartet. Im
allgemeinen erstellt das Programm die Datei die eingebunden werden soll.
Muß aber nicht sein.
Falls das Programm einen Returncode von 0 hat, wird mit der Bearbeitung
des Blocks fortgefahren, ansonsten mit der Bearbeitung des nächsten Blocks
begonnen.
Als nächstes wird geprüft, ob eine G-Zeile (Gruppe), A-Zeile (Absender),
B-Zeile (Betreff) und eine D-Zeile (Textdatei) angegeben ist. Falls als
Gruppe PRIVATE (PMs) angegeben ist wird zusätzlich überprüft ob eine
E-Zeile (Empfänger) vorhanden ist. Ist die Überprüfung erfolgreich wird
noch getestet ob's die Datei gibt und deren Länge größer 0 ist. Wenn all
das erfüllt ist wird die angegebene Datei als Mail in die Gruppe
einsortiert. Überlange Mails (> 14 KB) werden automatisch gesplittet.
Die Gruppe, in der die Mail einsortiert werden soll muß vorher schon in
der Database von CAT existieren. Beim Vergleich er Gruppennamen wird die
Groß/klein-Schreibung nicht berücksichtigt. Um sich selber eine Gruppe
einzurichten genügt es, folgendes kleines Outfiele in CAT einzufügen.
#A0815@XYZ
DL
VChipmunk
Weigene Gruppe eingerichtet
E199411111111
GChipmunk
:Hallo, ich bin'.
#LOG
:Gruppe eingerichtet
#
Ein Beispiel OUTFILE.TXT liegt dem Archiv bei. Bitte nicht versuchen, mit
einem solchen Outfile eine Gruppe PRIVATE einzurichten da dieser Name für
die persöhnliche Gruppe (PMs) reserviert ist.
Noch etwas wichtiges. Zur Erzeugung der Messages-ID wird von Chipmunk die
aktuelle Urzeit/Datum und die Position die die Mail beim Einsortieren in
die Gruppe erhält benutzt. Das soll erstens sicherstellen daß keine ID
erzeugt wird die es schon in der Database gibt, zweitens soll es keine
'gültige' Mausnet-ID sein damit es zu keinen 'Verwechselungen' kommt.
Falls man die Mails in die Gruppe PRIVATE (PMs) einsortieren läßt werden
beim nächsten Tausch natürlich auch Statusmeldunegn an die Maus geschickt.
Diese meckert sie (richtigerweise), als nicht gültig an und stört sich
nicht weiter daran. Natürlich lassen sich solche Mails auch 'beantworten'
was allerdings mehr als unsinnig ist. Auch in diesem Fall wird die Mail,
bzw. die Kommentar-ID, als ungültig abgelehnt. Was bei einer darauf
folgenden Wildwestverkettung passiert hängt von dem Absender der
kommentierten/beantworteteten Mail ab. Deshalb sollte als Absender der mit
Chipmunk einsortierten Mails auch keine gültigen MausNet-Adresse angegeben
werden. Als zusätzliche Sicherheit wird der Mail noch die Distribution
lokal gegeben.
Wie startet man Chipmunk?
Dazu gibt es zwei Möglichkeiten
1. Als seperates Programm.
Chipmunk kann aus Scripts, vom Desktop, usw. aufgerufen werden. Eben
wie ein selbstständiges Programm. Dazu benötigt es nur die Angabe des
Databasepfades und einer INF-Datei.
Beim nächsten Start von CAT sind die Texte als Mail eingebunden. Auch
die Angabe den Ungelesenen/Neuen-Mails ist entsprechend angepasst
worden.
2. Also I/O-Filter in CAT.
Chipmunk kann als I/O-Fiter in CAT eingebunden werden. Da Chipmunk in
den Dateien der Database schreibt kann es natürlich zu Problemem
kommen, wenn CAT selber gerade auf diese Dateien zugreift. Daher
sollte Chipmunk nur als Filter 'nach Einsortieren' des Outfiles
angemeldet werden. Zu diesem Zeitpunkt sind die entsprechenden
Dateien von CAT geschlossen und Chipmunk kann diese bearbeiten. Einen
Nachteil hat dies allerdings. Die Daten aus der GRUPPEN.POS, in der
auch vermerkt ist wieviele ungelesene und neue Mails es in den
Gruppen gibt, ist zwar von CAT geschlossen worden so daß Chipmunk
diese Datei bearbeiten kann. Allerdings hält CAT die Informationen
dieser Datei im Speicher, so das es sich nicht nach den von Chipmunk
geändereten Werten in der GRUPPEN.POS richtet. Das bewirkt, daß in
der Auswahlbox der Gruppen zum Lesen noch die alten Werte angezeigt
werden. Beim Anwählen und Einstieg zum Lesen in die Gruppe korrigiert
CAT die Anzeige und richtet sich nach den wirklich vorhandenen Mails
in der Gruppe. Dies wird vielleicht, wenn möglich, in einer späteren
Version von CAT geändert.
Wer diesen kleinen Nachteil in Kauf nimmt, hat allerdings auf der
anderen Seite den Vorteil, daß nach dem Einsortieren des Outfiles die
entsprechenden Mails, z.B. Diffs über die Infodateien der Maus schon
in der Database stehen.
Es wird davon abgeraten Chipmunk, als anderen I/O-Filter ('für
In-/Outfile', 'für Messages') zu benutzen, da dort möglicherweise
nicht alle Dateien von CAT geschlossen sind.
Als I/O-Filter für 'nach Einsortieren' wird einfach $D INF-Datei
übergeben. 4D steht für den Databasepfad den CAT selber einsetzt und
INF-Datei ist der Name der entsprechenden INF-Datei für Chipmunk
(z.B. CHIPMUNK.INF).
Weiterhin sollte man Chipmunk unter einem Multitasking-Betriebssystem
nicht parallel zu CAT oder CATPUTZ starten, oder sonst einem Programm
welches auf die Dateien der Database zugreift.
Chipmunk und auch die anderen beiden Programme machen keinerlei Ausgaben auf
dem Bildschirm, so daß es diesbezüglich keine Probleme mit anderen
Programmen geben sollte.
Damit sich direkt etwas mit Chipmunk anfangen läßt, liegen zwei kleine
Programme bei.
ITG_DIFF.TTP und LOESCHE.TTP.
Ersteres erstellt eine DIFF-Datei über ITG.TXT und ITG.BAK. Das zweite
Programm löscht alle Dateien, die in einer INF-Datei angegeben sind.
Als Beispiel nochmals die oben angebenen INF-Datei für Chipmunk.
BITG_DIFF.TTP: Gruppenänderungen ; Betreff
AITG_DIFF.TTP ; Absender
;EHenry Rolofs @ KR ; Empfänger
GChipmunk ; Gruppe
;FD ; CAT-Status
DITG_DIFF.TXT ; Textdatei
KE:\CAT\MAUS_KR\DATABASE ; Kommandozeile
PITG_DIFF.TTP ; Programm
- ; Trennzeichen
KLOESCHE.INF ; Dateien aus LOESCHE.INF
PLOESCHE.TTP ; werden gelöscht
Zuerst wird das Programm ITG_DIFF.TTP mit dem Pfad der Database alsParameter gestartet. Dieses Programm erstellt aus der ITG.TXT und der
ITG.BAK, sofern vorhanden, ein Diff-Datei mit dem Namen ITG_DIFF.TXT im
aktuellen Verzeichnis.
Falls sich keine Diff-Datei erstellen ließ, beendet sich ITG_DIFF.TTP mit
einem Returncode != 0.
Andernfalls wird danach die Datei ITG_DIFF.TXT in die Gruppe Chipmunk mit
den gemachten Angaben (Absender, Betreff usw.) eingebunden.
Danach wird das Programm LOESCHE.TTP gestartet mit der Angabe einer
INF-Datei (nicht zu verwechslen mit der INF-Datei von Chipmunk). Dieses
Programm löscht alle in der Datei angegebenen Dateien.
Bei mir sieht die LOESCHE.INF so aus.
E:\CAT\MAUS_KR\DATABASE\*.BAK
ITG_DIFF.TXT
Zuerst werden alle BAK-Dateien im Databaseordener gelöscht und
anschließend die Datei ITG_DIFF.TXT im aktuellen Verzeichnis (für eine
Datei, die im aktuellen Verzeichnis gelöscht werden soll, braucht der Pfad
nicht mit übergeben werden). Als Joker-Zeichen können '?' oder '*'
verwendet werden. Unterverzeichnisse können nicht gelöscht werden.
Nun zum ITG_DIFF.TTP. Wie schon gesagt/geschrieben wird beim Start der
Databasepfad übergeben und eine Datei ITG_DIFF.TXT im aktuellen
Verzeichnis erstellt. Wenn es keinen Unterschied zwischen der ITG.TXT und
der ITG.BAK gibt, oder die Diff-Datei die Länge von 0 aufweist wird diese
wieder gelöscht und das Programm beendet sich mit einem Returncode != 0.
Ein Eintrag in der ITG_DIFF.TXT kann z.B. so aussehen:
*Erstellt von ITG_DIFF.TTP, Version 0.15*
*Achtung!*
*Gruppe Fahrtwind ist 2 mal vorhanden*
*Mausgruppe wurde geändert*
*Neu:*Stargazer Flags: LBS+V+G-P-$- Chef: Thomas Schleuß
Netzname: Astronomie
Diskussionen unter Sternguckern und Interessierten
*Alt:*Stargazer Flags: LBS+V+G-P-$- Chef: Thomas Schleuß
Diskussionen unter Sternguckern und Interessierten
In solch einer Meldung können die Begriffe 'Netzgruppe', 'Mausgruppe' und
'Lokalgruppe' auftauchen.
'Netzgruppe' steht für eine Gruppe im MausNet die es in der lokalen Maus
nicht gibt.
'Mausgruppe' steht für eine Gruppe im MausNet die es auch in der lokalen
Maus gibt.
'Lokalgruppe' steht für eine Gruppe die es nur lokal in der Maus gibt.
In dem Beispiel oben taucht zusätzlich noch die Meldung auf, daß eine
Gruppe mehrfach in der ITG.TXT vorhanden ist. So etwas sollte nicht, kann
aber vorkommen. Wie man sehen kann hat die Gruppe Stargazer (lokaler Name
in der Maus) einen neuen Namen im Netz bekommen.
Einfach mal ausprobieren was für Meldungen alles kommen können. Im
wesentlichen sehen die so aus wie dieses Beispiel hier.
Hier eine Auflistung der möglichen Gruppen-Flags wie ich sie von einem
freundlichen Programmierer eines MausNetfrontend's bekommen habe. :-)
Den Lese- und Schreibzugriff beschreiben L bzw. S:
+ Zugriff der betreffenden Art zur Zeit erlaubt bzw. eingeschaltet.
B Zugriff zur Zeit abgeschaltet, aber durch einfaches Bestellen anschaltbar.
C -----"------"---------"------, muß beim Chef beantragt werden.
- Zugriff unmöglich.
P Zugriff angeschaltet und kann nicht abgeschaltet werden (Abbestellen
unmöglich).
S Netzgruppe ist nicht lokal vorhanden. SysOp fragen.- macht natürlich beim
Lesen wenig Sinn (dann sollte die Gruppe gleich geheim sein).
P bezieht sich natürlich nur auf den Lesezugriff. Zur Zeit wäre das
bei Öffentlich der Fall. Da würde übrigens auch die Angabe des Chefs
fehlen.
Weitere Flags:
V Vernetzt (+) oder lokal (-), (=) ("Doppel-Minus" :-)) für lokal
nichtvorhandene Netzgruppe, evtl. später auch Angaben zu Gates?
G User ist Chef (*), Mitglied (+) oder keins von beiden (-)
P Es gibt einen Programmteil (+) oder nicht (-)
$ Zugriff für Nichtzahler eingeschränkt (+) oder nicht (-)
Weitere Flags können bei Bedarf eingeführt werden.
Damit ITG_DIFF.TTP eine Diff-Datei erstellen kann muß eine ITG.BAK
vorhanden sein. Damit CAT diese anlegt muß in der CATUSER.INF die
folgenden Zeile
NoInfofileBackups := TRUE;
entfernt oder das TRUE durch FALSE ersetzt werden.
Daß die BAK-Dateien nachher doch gelöscht werden, dafür sorgt dann
LOESCHE.TTP. Zumindest die ITG.BAK muß gelöscht werden, sonst wird bei
jedem Aufruf von ITG_DIFF.TTP eine Diff-Datei über die 'alten' ITG-Dateien
erstelt. So wie's bei mir installiert ist, wird jedesmal wenn die Maus
eine neue ITG.TXT schickt und CAT darauf eine ITG.BAK anlegt eine Mail mit
den Änderungen in die Gruppe Chipmunk gepostet.
Als Diff-Programm kann natürlich jedes andere Programm (TOS) benutzt
werden. Dieses dient nur als Beispiel und ist speziell auf die ITG.TXT
zugeschitten.
Zusätzlich liegt den Archiv noch ein OUTFILE.TXT bei, welches eine Gruppe
einrichtet und nochmal einen kleine Erklärung zu den Diffs von
ITG_DIFF.TTP enthält.
Denen, die sich durch diese Anleitung gewühlt haben meinen herzlichen
Glückwunsch.
Falls es dennoch Fragen geben sollte bin ich in der Maus KR zu erreichen.
(Henry Rolofs @ KR)
Gruß, Henry
PS: Nochmals, zur Zeit ist Chipmunk nur mit den CAT-Versionen 2.52 und 2.6
getestet worden.